#include <tuple>

using namespace std;

template <typename T>
class SequentialList
{
public:
    SequentialList(int capacity);
    virtual ~SequentialList(){};
    void Clear();
    bool IsEmpty() const;
    bool IsFull() const;
    int Len() const;
    tuple<bool, T> Get(int index) const;
    int Find(T element) const;
    tuple<bool, T> Prev(T element) const;
    tuple<bool, T> Next(T element) const;
    bool Insert(int index, T element);
    tuple<bool, T> Delete(int index);
    bool Remove(T element);

private:
    int cap, len;
    T *elements;
};
